/*
1.js中的垃圾回收

js中内存管理是自动的
对象不再被引用时是垃圾
对象不能从根本上访问到时是垃圾

2.js中的可达对象

可以访问的对象就是可达对象（引用、作用域链）
可达的标准就是从根出发是否能够被找到
js中的根就可以理解为是全局变量对象

3.js中的垃圾回收：找到垃圾，然后通过js的执行引擎进行空间的释放和回收

4.js中的引用和可达：
*/

// let obj = { name: 'deman' } //deman空间
// let ali = obj //引用deman
// obj = null //释放deman空间，但是ali的空间存在，可达

function objGroup(obj1, obj2) {
    obj1.next = obj2
    obj2.prev = obj1
    return {
        o1: obj1,
        o2: obj2
    }
}

let obj = objGroup({ name: 'obj1' }, { name: 'obj2' })
console.log(obj);
// {
//     o1: <ref *1> {
//       name: 'obj1',
//       next: { name: 'obj2', prev: [Circular *1] }
//     },
//     o2: <ref *2> {
//       name: 'obj2',
//       prev: <ref *1> { name: 'obj1', next: [Circular *2] }
//     }
//   }